package com.dong;

import net.sf.cglib.proxy.Callback;
import net.sf.cglib.proxy.Enhancer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.lang.reflect.InvocationHandler;

/**
 *  笔记参考 {@link com.dong.annotation.Info}
 *
 *  动态代理:     jdk
 *  实现类:    {@link com.dong.pattern.JdkProxySubject}
 *   继承  {@link java.lang.reflect.InvocationHandler}
 *   组合 被代理的实现
 *   使用{@link java.lang.reflect.Proxy#newProxyInstance(ClassLoader, Class[], InvocationHandler)}  进行动态代理的创建
 *
 *   动态代理  : cglib   注意区分包 以及依赖
 *      实现接口: {@link net.sf.cglib.proxy.MethodInterceptor}  代理类
 *      使用: {@link Enhancer#setSuperclass(Class)} 实例设置父类
 *              {@link Enhancer#setCallback(Callback)}  设置代理类
 *              {@link Enhancer#create()} 生成代理类对象
 *
 *   aop 链式调用:   责任链   successor
 *
 */
@SpringBootApplication
public class AopApplication {

    public static void main(String[] args) {
        SpringApplication.run(AopApplication.class,args);
    }
}
